Today, TCP is the dominant protocol (and it appears that it will remain so in the foreseeable future) for non-media and increasingly non-real-time media flows in the Internet. Although there are many different TCP variants, the fundamental TCP algorithm is the same: to secure as much bandwidth as possible while achieving some level of long-term rate fairness across competing flows. By their very design, both the widely employed loss based and delay-based TCP algorithms induce congestion to achieve rate adaptation. This leads to packet losses for other flows, including real-time media flows where losses cannot be concealed easily by the decoder. Thus, it is imperative to understand the negative impact of TCP on media flows and provide efficient counter-measures.
Standard transport layer solutions for media delivery such as TFRC mainly focus on TCP-friendly rate control, while leaving reliability to the application layer. The application layer has several means to increase reliability utilizing techniques such as forward error correction (FEC), retransmission, error-resilient source coding techniques, etc. FEC is preferred over the others in many scenarios such as multicasting (where feedback implosion may occur) and media transport over relatively large round trip time (RTT) distances (where late packet arrivals are treated as packet losses at the application layer). Congestion-induced packet losses may occur as the result of longer term congestion conditions or they may occur as brief periods of congestion triggered by TCP's additive increase/multiplicative decrease bandwidth sensing algorithm.
Loss and delay statistics and the relationship between network congestion and RTT or FTT delays observed by the end hosts in the Internet has long been the subject of various studies. For example, measurements for the period of Jul. 23, 2008-Aug. 22, 2008 indicate that packet loss on the global Internet is more than 2% on average. In separately analyzing loss and delay, some have concluded that most loss events occur in bursts of 1 or 2 losses and the inter-separation of loss events is typically large, rendering FEC-based protection a viable approach. Others, in looking at a month of statistics on packet losses in the Internet measured from speech flows (following ITU G.723.1 recommendation), determined that in most cases a current loss indicates another loss in the near future, although in many cases the correlation is weak. The losses are typically asymmetric, e.g., they mostly occur either in one direction or the other, but not both. Still others have observed that when a flow is sparse enough (e.g., audio and lower quality video), the losses look random and FEC-type open-loop solutions become more attractive. Looking into both the autocorrelation of packet delays and the cross-correlation between packet loss and delay observed by a continuous media stream, some have observed that delay autocorrelation in most cases decreases as the lag between the samples increase. Interestingly, some also observed periodicity in autocorrelation of some traces which they attribute to a synchronization phenomenon between TCP flows. Some analysis on loss-conditioned average delay indicates a large delay correlation around the loss event, i.e., packets that were queued just before or after the loss event tend to observe similar queuing delays. Others have found that the distribution characteristics of RTT and loss rate are inter-dependent, i.e., at small loss rates, the RTT distribution exhibits mostly a unimodal curve, whereas at higher loss rates it becomes more spread and multiple significant local maxima develop.
The interdependence of network congestion and RTT has been used as the main design philosophy of many TCP variants that are categorized as delay-based congestion control algorithms. Critique of these protocols claim that delay-based congestion control is not an adequate technique. Particularly, some argue that unless the RTT sampling rate is fast enough (e.g., in high bandwidth paths), delay-based methods react to RTT variations incorrectly leading to poor performance. Similar observations and more detailed evaluation indicate weak correlation between RTT value increases and packet losses.
The losses in a real network can be due to many reasons including congestion, interface/router failures, buggy protocol implementations, channel errors (mainly over the last mile links), etc. Even when congestion is the main reason for packet losses, in most of the measurement studies, it is not clear whether the losses are due to flash-crowds or induced congestion from aggressive rate/congestion control protocols.
Previously, congestion states have been tied to the level of FEC protection. For example, congestion losses have been modeled with a two-state Gilbert model and it has been determined that the redundant information needed to be piggy backed at each new voice packet. A heuristic loss prediction algorithm has been proposed which is based on the ratio of long-term RTT to short term RTT and improves the rate adaptation algorithm of TFRC to cut the rate when future loss events are predicted. The TFRC rate equation has been used as a rate constraint and to jointly optimize source coding and FEC level based on that constraint. A fixed FEC has been added into the control loop of TCP's additive increase multiplicative decrease (AIMD) algorithm such that the multiplicative rate reduction due to losses is applied only after the FEC decoding stage fails.